//
// Created on 2024/2/23.
//
// Node APIs are not fully supported. To solve the compilation error of the interface cannot be found,
// please include "napi/native_api.h".

#ifndef OHOS_NATIVE_MANAGER_H
#define OHOS_NATIVE_MANAGER_H

#include "napi/common/OhosLog.h"

#include "napi/adapter/TouchEventHandler.h"
#include "napi/input/InputHandler.h"
#include <bits/alltypes.h>

#include "napi/helper/NapiHelper.h"
#include "napi/file/RawFileUtils.h"
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <unistd.h>

class native_manager: TouchEventHandler{
public:
    native_manager();
    static native_manager *GetInstance();

public:
    virtual void onSurfaceCreated(int width, int height, int orientation);
    virtual void onDrawFrame();
    virtual void onSurfaceChanged(int width, int height, int orientation);
    virtual void onSurfaceDestroyed();
    virtual void Pause();
    virtual void Resume();
    virtual void dispatchTouchEvent(TouchTracker *event);
    virtual void dispatchTabEvent(TapTracker *event);

private : 
    static native_manager *instance_;
};

#endif //OHOS_NATIVE_MANAGER_H
